package com.ophiux.cs.infrastructure.mapper.consultBase;


import java.util.List;

import com.ophiux.cs.domain.consultBase.model.entity.DeptSorts;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsParentResult;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsQueryObj;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsResult;
import com.ophiux.utils.exception.OphiuxDaoException;

/**
 * 科室分类数据层映射
 */
public interface DeptSortsMapper {

	/**
	 *根据名称查询科室
	 * @param SORT_NAME
	 * @return
	 * @throws OphiuxDaoException
	 */
	public DeptSorts findByName(String SORT_NAME) throws OphiuxDaoException;

	/**
	 * 根据条件查询科室分类
	 * @param dept
	 * @return
	 * @throws OphiuxDaoException
	 */
	public List<DeptSorts> selectDeptSorts(DeptSorts dept) throws OphiuxDaoException;

	/**
	 * 新增科室分类
	 * @param dept
	 * @throws OphiuxDaoException
	 */
	public void addDeptSorts(DeptSorts dept) throws OphiuxDaoException;

	/**
	 * 更新科室分类
	 * @param dept
	 * @throws OphiuxDaoException
	 */
	public void updateDeptSorts(DeptSorts dept) throws OphiuxDaoException;

	/**
	 * 删除科室分类
	 * @param SORT_ID
	 * @throws OphiuxDaoException
	 */
	public void deleteDeptSorts(String SORT_ID) throws OphiuxDaoException;

	/**
	 * 根据ID查询医医生
	 * @param SORT_ID
	 * @return Doctor
	 */
	public DeptSorts getDeptSortsById(String SORT_ID) throws OphiuxDaoException;
	/**
	 * 查询一级科室分类
	 * @param deptSorts
	 * @return List<DeptSortsParentResult>
	 */
	public List<DeptSortsParentResult> getParentDeptSorts(DeptSortsQueryObj deptSorts) throws OphiuxDaoException;
	/**
	 * 查询一级科室分类
	 * @param deptSorts
	 * @return List<DeptSortsParentResult>
	 */
	public int getParentDeptSortsCount(DeptSortsQueryObj deptSorts) throws OphiuxDaoException;
	/**
	 * 根据父级ID查询科室分类
	 * @param PARENT_SORT_ID
	 * @return List<DeptSortsResult>
	 */
	public List<DeptSortsResult> getDeptSortsByParentId(String PARENT_SORT_ID) throws OphiuxDaoException;

}
